var registroLiquidacion = null;
var registroExpedientePersona=null;
var registroBeneficio=null;
var registroFraccionamiento=null;
var fechainiciopension = null;
var fechabaja=null;
var dsLiquidacionPersonal = null;
var dsBeneficios = null;
var dsFraccionamiento = null;
var winGestionarBeneficios=null;
var winGestionarFraccionamiento =null;

function gestionarLiquidacion(){
    var frmLiquidacionCabecera =new Ext.Panel({
        bodyBorder:true,
        height:100,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsLiquidacionPersonal=new Ext.data.Store({
        autoDestroy: true,
        url: "listaLiquidacion.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaLiquidacion",
            fields:
            [
                { name: "nliqu_identificador", type: "integer" },
                { name: "nexpe_identificador", type: "integer" },
                { name: "ntibe_identificador", type: "integer" },
                { name: "ctibe_descripcion", type: "string" },
                { name: "cliqu_beneficiarios", type: "string" },
                { name: "cliqu_observaciones", type: "string" },
                { name: "cliqu_dictamen", type: "string" },
                { name: "dliqu_fechainiciopension" },
                { name: "nunpa_unidadpago", type: "integer" },
                { name: "dliqu_fechabaja", type: "string" },
                { name: "nmore_identificador", type: "integer" },
                { name: "cliqu_cgts", type: "string" },
                { name: "cliqu_tiemposervicio", type: "string" },
                { name: "cliqu_completoespecial", type: "integer" },
                { name: "cliqu_pagobenope", type: "integer" },
                { name: "cliqu_mesparcial", type: "integer" }                
            ]
        })
    });
    dsLiquidacionPersonal.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar la Liquidacion"+response.responseText);
    });
    var grdLiquidacion=new Ext.grid.GridPanel({
        store: dsLiquidacionPersonal,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Liquidacion",
            dataIndex: "ctibe_descripcion",
            width: 200,
            sortable:true
        },{
            header: "Dictamen",
            dataIndex: "cliqu_dictamen",
            width: 300,
            sortable:true
        },{
            header: "Fecha Inicion Pension",
            dataIndex: "dliqu_fechainiciopension",
            width: 150,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
              ///  alert( 'Num Expe '+ registroExpedientePersona.data.expediente);
                if ($("txtidexpediente").value!=null && $("txtidexpediente").value!=""){
                    agregarLiquidacion(true, $("txtbeneficiario").value);
                }else{
                    alert("No tiene expediente registrado")
                }
            }
        }, '-', {
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
             //   alert( 'Num Expe '+ registroExpedientePersona.data.expediente);
                if (registroLiquidacion != null){
                    mantenerLiquidacion(false, $("txtbeneficiario").value);
                }else{
                     Ext.MessageBox.alert("Error","Debe seleccionar un registro");
                }
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){
                imprimirLiquidacion();
            }
        }]
    });

    var seleccionLiquidacion=grdLiquidacion.getSelectionModel();
    seleccionLiquidacion.on("rowselect",function(sm,fila,registro){
        registroLiquidacion=registro;
    });

    dsLiquidacionPersonal.reload({  params:{ expediente:'-99' }  });

    new Ajax.Request("frmCabeceraLiquidacion.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmLiquidacionCabecera.html=transport.responseText;
            var win = new Ext.Window({
                title:'Liquidacion de Pensiones',
                closeAction:'destroy',
                width:800,
                height: 270,
                x:0,
                y:0,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height:70,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmLiquidacionCabecera
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'fit',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items: grdLiquidacion
                }]
            });
            win.show();
        }
    });
}

function fBuscarExpediente(){ 
    if ($("txtnroexp").value.length>0){
        var dsExpediente=new Ext.data.Store({
            autoDestroy: true,
            url: "listaExpedientePersona.jsp",
            reader: new Ext.data.JsonReader(
            {
                root: "Expedientes",
                fields:
                [
                    { name: "expediente", type: "string" },
                    { name: "nexpe_identificador", type: "integer" },
                    { name: "npepo_identificador", type: "integer" },
                    { name: "npers_identificador", type: "integer" },
                    { name: "ngrad_codigosige", type: "integer" },
                    { name: "cgrad_descripcion", type: "string" },
                    { name: "apenom", type: "string" }
                ]
            })
        });
        dsExpediente.on("exception",function(proxy, type, action, options, response, arg){
            Ext.MessageBox.alert("Error","Sucedio un error al cargar los perfiles"+response.responseText);
        });

        var grdExpedientePersona=new Ext.grid.GridPanel({
            store: dsExpediente,
            loadMask: false,
            height:300,
            width:600,
            plugins:[new Ext.ux.grid.Search({
                mode:'local',
                iconCls:false,
                minLength:2,
                width: 190
            })],
            columns:
            [new Ext.grid.RowNumberer(),
            {
                header: "Nro Expediente",
                dataIndex: "expediente",
                width: 100,
                sortable:true
            },{
                header: "Apellidos y Nombres del Administrado",
                dataIndex: "apenom",
                width: 400,
                sortable:true
            }],
            tbar:[{
                text:'Aceptar',
                iconCls:'icon-selector',
                handler: function(){
                    $("txtnroexp").value = registroExpedientePersona.data.expediente;
                    $("txtidexpediente").value = registroExpedientePersona.data.nexpe_identificador;
                    $("txtbeneficiario").value = registroExpedientePersona.data.apenom;
                    $("txtidpersona").value = registroExpedientePersona.data.npepo_identificador;
                    registroRTS=null;
                    winBusquedaExpediente.hide();
                    dsLiquidacionPersonal.reload({
                        params:{ expediente:registroExpedientePersona.data.nexpe_identificador }
                    });
                }
            }]

        });
        grdExpedientePersona.on("dblclick",function(grid,rowIndex,e){
            $("txtnroexp").value = registroExpedientePersona.data.expediente;
            $("txtidexpediente").value = registroExpedientePersona.data.nexpe_identificador;
            $("txtbeneficiario").value = registroExpedientePersona.data.apenom;
            $("txtidpersona").value = registroExpedientePersona.data.npepo_identificador;
            registroRTS=null;
            winBusquedaExpediente.hide();
            dsLiquidacionPersonal.reload({
                params:{ expediente:registroExpedientePersona.data.nexpe_identificador }
            });
        });
        var seleccionExpediente=grdExpedientePersona.getSelectionModel();
        seleccionExpediente.on("rowselect",function(sm,fila,registro){
            registroExpedientePersona=registro;
        });
        dsExpediente.reload({
            params:{ expediente:$("txtnroexp").value }
        });
        winBusquedaExpediente = new Ext.Window({
            title:'Busqueda de Expedientes',
            closeAction:'destroy',
            width:600,
            height:300,
            shim:false,
            modal:true,
            maximizable:false,
            resizable: false,
            animCollapse:false,
            layout: 'fit',
            items:grdExpedientePersona
        });
        winBusquedaExpediente.show();
    }else{
        alert("Debe ingresar al menos un caracter");
    }
}

function fIniciarBusqueda(e){
    var characterCode
    if(e && e.which){
        e = e
        characterCode = e.which
    }else{
        e = event
        characterCode = e.keyCode
    }
    if(characterCode == 13){
        fBuscarExpediente();
        return false
    }else{
        return true
    }
}

function fLimpiarBusqueda(){
    $("txtnroexp").value ="";
    $("txtidexpediente").value = "";
    $("txtbeneficiario").value = "";
    registroExpedientePersona=null;
    dsLiquidacionPersonal.reload({
        params:{
            expediente:"-99"
        }
    });
}

function agregarLiquidacion(nuevo , beneficiario){
    var frmLiquidacion =new Ext.Panel({
        bodyBorder:true,
        height:600,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });

    dsBeneficios=new Ext.data.Store({
        autoDestroy: true,
        url: "listaBeneficio.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaBeneficios",
            fields:
            [
                { name: "nliqu_identificador", type: "integer" },
                { name: "ndeli_identificador", type: "integer" },
                { name: "ddeli_fechacreacion", type: "string" },
                { name: "nbene_identificador", type: "integer" },
                { name: "cbene_descripcion", type: "string" },
                { name: "nbene_monto", type: "string" }
            ]
        })
    });
    dsBeneficios.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar la Liquidacion"+response.responseText);
    });
    var grdBeneficios=new Ext.grid.GridPanel({
        store: dsBeneficios,
        loadMask: true,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Codigo",
            dataIndex: "nbene_identificador",
            width: 80,
            sortable:true
        },{
            header: "Descripcion",
            dataIndex: "cbene_descripcion",
            width: 150,
            sortable:true
        },{
            header: "Monto",
            dataIndex: "nbene_monto",
            width: 100,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                //alert( 'Num Expe '+ registroExpedientePersona.data.expediente);
                agregarBeneficio($("txtliquidacion").value);
            }
        }, '-', {
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarBeneficio();
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){

            }
        }]
    });

    var seleccionBeneficio=grdBeneficios.getSelectionModel();
    seleccionBeneficio.on("rowselect",function(sm,fila,registro){
        registroBeneficio=registro;
    });
    dsBeneficios.load({
        params:{
            nliqu_identificador: "-99"
        }
    });


    dsFraccionamiento=new Ext.data.Store({
        autoDestroy: true,
        url: "listaFraccionamiento.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaFraccionamiento",
            fields:
            [
                { name: "nfrli_identificador", type: "integer" },
                { name: "cfrli_descripcion", type: "string" },
                { name: "nfrli_monto", type: "string" },
                { name: "nliqu_identificador", type: "integer" },
                { name: "nfrli_parte", type: "integer" },
                { name: "nfrli_total", type: "integer" }
            ]
        })
    });
    dsFraccionamiento.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar la Liquidacion"+response.responseText);
    });
    var grdFraccionamiento=new Ext.grid.GridPanel({
        store: dsFraccionamiento,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Codigo",
            dataIndex: "nfrli_identificador",
            width: 80,
            sortable:true
        },{
            header: "Descripcion",
            dataIndex: "cfrli_descripcion",
            width: 150,
            sortable:true
        },{
            header: "Monto",
            dataIndex: "nfrli_monto",
            width: 100,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                //alert( 'Num Expe '+ registroExpedientePersona.data.expediente);
                agregarFraccionamiento($("txtliquidacion").value);
            }
        }, '-', {
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarFraccionamiento(registroFraccionamiento.data.nfrli_identificador);
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){

            }
        }]
    });

    var seleccionFraccionamiento=grdFraccionamiento.getSelectionModel();
    seleccionFraccionamiento.on("rowselect",function(sm,fila,registro){
        registroFraccionamiento=registro;
    });
    dsFraccionamiento.load({
        params:{
            nliqu_identificador: "-99"
        }
    });

    new Ajax.Request("frmLiquidacion.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmLiquidacion.html=transport.responseText;
            var winLiquidacion = new Ext.Window({
                title:'Nueva Hoja de Liquidacion de Pension',
                closeAction:'destroy',
                width:800,
                x:50,
                y:0,
                height: 550,
                modal:true,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 280,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmLiquidacion,
                    bbar:[{
                        text:'Grabar',
                        iconCls:'icon-save',
                        handler: function(){
                            insertarLiquidacion();
                        }
                    }]
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'border',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items:[{
                        region: 'west',
                        title: "Beneficio",
                        width: 400,
                        height: 270,
                        split: false,
                        border:false,
                        layout:'fit',
                        xtype: 'panel',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items:grdBeneficios
                    },{
                        region: 'center',
                        title: "Asignacion de Pension",
                        width: 400,
                        height: 270,
                        split: false,
                        border:false,
                        xtype: 'panel',
                        layout:'fit',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items:grdFraccionamiento
                    }]
                }],
                bbar:[{
                    text:'Cerrar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        registroLiquidacion=null;
                        dsLiquidacionPersonal.reload({ params:{ expediente:registroExpedientePersona.data.nexpe_identificador  } });
                        winLiquidacion.destroy();
                    }
                }]
            });
            winLiquidacion.show();
            fechabaja= new Ext.form.DateField({
                renderTo:'txtfechabaja',
                id:'fechabaja2',
                format:'d/m/Y'
            });
            fechainiciopension= new Ext.form.DateField({
                renderTo:'txtfechainiciopension',
                id:'fechainiciopension2',
                format:'d/m/Y'
            });
            $("txtnroexpediente").value= registroExpedientePersona.data.expediente;
            $("txtapenomadministrado").value = beneficiario;
            fCargarMotivos();
            fCargarTipoBeneficio();
            fCargarUnidadCobro();
            $("txtgrado").value = registroExpedientePersona.data.cgrad_descripcion;
        }
    });
}

function fCargarMotivos(){
    new Ajax.Request("listaMotivos.jsp",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cboMotivo");
            removeAllOptions(egsSelect);
            var lstMotivos = transport.responseText.evalJSON();
            for (var i=0;i<lstMotivos.tablaMotivos.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstMotivos.tablaMotivos[i].nmore_codigo);
                eOption.appendChild(document.createTextNode(lstMotivos.tablaMotivos[i].cmore_descripcion));
                egsSelect.appendChild(eOption);
            }
        }
    });
}

function fCargarTipoBeneficio(){
    new Ajax.Request("listaTipoBeneficio.jsp",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cbotipobeneficio");
            removeAllOptions(egsSelect);
            var lstTipoBeneficio = transport.responseText.evalJSON();
            for (var i=0;i<lstTipoBeneficio.tablaTipoBeneficio.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstTipoBeneficio.tablaTipoBeneficio[i].ntibe_identificador);
                eOption.appendChild(document.createTextNode(lstTipoBeneficio.tablaTipoBeneficio[i].ctibe_descripcion));
                egsSelect.appendChild(eOption);
            }
        }
    });
}

function fCargarUnidadCobro(){
    new Ajax.Request("listaUnidadPago.jsp",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cbounidadpension");
            removeAllOptions(egsSelect);
            var lstUnidades = transport.responseText.evalJSON();
            for (var i=0;i<lstUnidades.tablaUnidades.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstUnidades.tablaUnidades[i].nunpa_codigounidad);
                eOption.appendChild(document.createTextNode(lstUnidades.tablaUnidades[i].cunpa_nombre));
                egsSelect.appendChild(eOption);
            }
        }
    });
}

function fCargarBeneficios( ngrad_codigosige ){
   
    new Ajax.Request("listaBeneficiosDisponibles.jsp",{
        method: "post",
        parameters:{
            ngrad_codigosige: ngrad_codigosige
        },
        asynchronous:false,
        onSuccess: function(transport){
            var egsSelect = $("cboBeneficio");
            removeAllOptions(egsSelect);
            var lstBeneficios = transport.responseText.evalJSON();
            for (var i=0;i<lstBeneficios.tablaBeneficios.length;i++){
                var eOption = document.createElement("option");
                eOption.setAttribute("value", lstBeneficios.tablaBeneficios[i].nbene_identificador);
                eOption.appendChild(document.createTextNode(lstBeneficios.tablaBeneficios[i].cbene_descripcion));
                egsSelect.appendChild(eOption);
            }
            fCargarMonto();
        }
    });
}

function mantenerLiquidacion(nuevo,beneficiario){
    var frmLiquidacion =new Ext.Panel({
        bodyBorder:true,
        height:600,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    dsBeneficios=new Ext.data.Store({
        autoDestroy: true,
        url: "listaBeneficio.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaBeneficios",
            fields:
            [
                { name: "nliqu_identificador", type: "integer" },
                { name: "ndeli_identificador", type: "integer" },
                { name: "ddeli_fechacreacion", type: "string" },
                { name: "nbene_identificador", type: "integer" },
                { name: "cbene_descripcion", type: "string" },
                { name: "nbene_monto", type: "string" }
            ]
        })
    });
    dsBeneficios.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar la Liquidacion"+response.responseText);
    });
    var grdBeneficios=new Ext.grid.GridPanel({
        store: dsBeneficios,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Codigo",
            dataIndex: "nbene_identificador",
            width: 80,
            sortable:true
        },{
            header: "Descripcion",
            dataIndex: "cbene_descripcion",
            width: 150,
            sortable:true
        },{
            header: "Monto",
            dataIndex: "nbene_monto",
            width: 100,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                agregarBeneficio(registroLiquidacion.data.nliqu_identificador);
            }
        }, '-', {
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarBeneficio();
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){

            }
        }]
    });

    var seleccionBeneficio=grdBeneficios.getSelectionModel();
    seleccionBeneficio.on("rowselect",function(sm,fila,registro){
        registroBeneficio=registro;
    });
    dsBeneficios.load({
        params:{
            nliqu_identificador: registroLiquidacion.data.nliqu_identificador
        }
    });


    dsFraccionamiento=new Ext.data.Store({
        autoDestroy: true,
        url: "listaFraccionamiento.jsp",
        reader: new Ext.data.JsonReader(
        {
            root: "tablaFraccionamiento",
            fields:
            [
                { name: "nfrli_identificador", type: "integer" },
                { name: "cfrli_descripcion", type: "string" },
                { name: "nfrli_monto", type: "string" },
                { name: "nliqu_identificador", type: "integer" },
                { name: "nfrli_parte", type: "integer" },
                { name: "nfrli_total", type: "integer" }
            ]
        })
    });
    dsFraccionamiento.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar la Liquidacion"+response.responseText);
    });
    var grdFraccionamiento=new Ext.grid.GridPanel({
        store: dsFraccionamiento,
        loadMask: false,
        height:200,
        border:true,
        frame: false,
        columns:[{
            header: "Codigo",
            dataIndex: "nfrli_identificador",
            width: 80,
            sortable:true
        },{
            header: "Descripcion",
            dataIndex: "cfrli_descripcion",
            width: 150,
            sortable:true
        },{
            header: "Monto",
            dataIndex: "nfrli_monto",
            width: 70,
            sortable:true
        },{
            header: "%",
            dataIndex: "nfrli_parte",
            width: 70,
            sortable:true
        },{
            header: "A Recibir",
            dataIndex: "nfrli_total",
            width: 70,
            sortable:true
        }],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                agregarFraccionamiento(registroLiquidacion.data.nliqu_identificador);
            }
        }, '-', {
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarFraccionamiento(registroFraccionamiento.data.nfrli_identificador);
            }
        },'-',{
            text:'Imprimir',
            iconCls:'icon-print',
            handler: function(){

            }
        }]
    });

    var seleccionFraccionamiento=grdFraccionamiento.getSelectionModel();
    seleccionFraccionamiento.on("rowselect",function(sm,fila,registro){
        registroFraccionamiento=registro;
    });
    dsFraccionamiento.load({
        params:{
            nliqu_identificador: registroLiquidacion.data.nliqu_identificador
        }
    });


    new Ajax.Request("frmLiquidacion.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmLiquidacion.html=transport.responseText;
            var winLiquidacion = new Ext.Window({
                title:'Hoja de Liquidacion de Pension',
                closeAction:'destroy',
                width:800,
                height: 550,
                y:0,
                modal:true,
                shim:false,
                maximizable:false,
                resizable: false,
                animCollapse:false,
                layout: 'border',
                items:[{
                    region: 'north',
                    height: 280,
                    split: false,
                    border:false,
                    layout:'fit',
                    xtype: 'panel',
                    items: frmLiquidacion,
                    bbar:[{
                        text:'Grabar',
                        iconCls:'icon-save',
                        handler: function(){
                            actualizarLiquidacion();
                        }
                    }]
                },{
                    region: 'center',
                    height: 200,
                    split: false,
                    border:false,
                    xtype: 'panel',
                    layout:'border',
                    bodyStyle: "background-color:#DFE8F6; border:0",
                    items:[{
                        region: 'west',
                        title: "Beneficio",
                        width: 400,
                        height: 270,
                        split: false,
                        border:false,
                        layout:'fit',
                        xtype: 'panel',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items:grdBeneficios
                    },{
                        region: 'center',
                        title: "Asignacion de Pension",
                        width: 400,
                        height: 270,
                        split: false,
                        border:false,
                        xtype: 'panel',
                        layout:'fit',
                        bodyStyle: "background-color:#DFE8F6; border:0",
                        items:grdFraccionamiento
                    }]
                }],
                bbar:[{
                    text:'Cerrar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        registroLiquidacion=null;
                        dsLiquidacionPersonal.reload({
                            params:{ expediente:registroExpedientePersona.data.nexpe_identificador  }
                        });
                        winLiquidacion.destroy();
                    }
                }]
            });
            winLiquidacion.show();
            fCargarMotivos();
            fCargarTipoBeneficio();
            fCargarUnidadCobro();
            fechabaja= new Ext.form.DateField({
                renderTo:'txtfechabaja',
                id:'fechabaja2',
                format:'d/m/Y'
            });
            fechainiciopension= new Ext.form.DateField({
                renderTo:'txtfechainiciopension',
                id:'fechainiciopension2',
                format:'d/m/Y'
            });
            //        registroExpedientePersona.data.ngrad_codigosige;
            // registroExpedientePersona.data.cgrad_descripcion;
            $("txtliquidacion").value = registroLiquidacion.data.nliqu_identificador;
            $("txtnroexpediente").value = registroExpedientePersona.data.expediente; // idexpediente
            $("txtapenomadministrado").value = beneficiario;
            $("txtgrado").value = registroExpedientePersona.data.cgrad_descripcion;

            //alert(registroExpedientePersona.data.cgrad_descripcion);

            document.getElementById("cbotipobeneficio").value = registroLiquidacion.data.ntibe_identificador;
            $("txtbeneficiarios").value = registroLiquidacion.data.cliqu_beneficiarios;
            $("txtobservaciones").value = registroLiquidacion.data.cliqu_observaciones;
            document.getElementById("cboMotivo").value = registroLiquidacion.data.nmore_identificador;
            $("txtcgts").value = registroLiquidacion.data.cliqu_cgts;
            $("txttiemposervicio").value = registroLiquidacion.data.cliqu_tiemposervicio;
            $("txtdictamen").value = registroLiquidacion.data.cliqu_dictamen;
            document.getElementById("cbounidadpension").value = registroLiquidacion.data.nunpa_unidadpago;
            fechabaja.setValue(registroLiquidacion.data.dliqu_fechabaja);
            fechainiciopension.setValue(registroLiquidacion.data.dliqu_fechainiciopension);
            $("ckmontocompleto").checked= registroLiquidacion.data.cliqu_completoespecial==1?true:false;
            $("ckBenope").checked = registroLiquidacion.data.cliqu_pagobenope==1?true:false;
            $("ckpagoparcial").checked = registroLiquidacion.data.cliqu_mesparcial==1?true:false;
        }
    });
}

function insertarLiquidacion(){
    new Ajax.Request("jsonInsertarLiquidacion.jsp",{
        method:"post",
        parameters: {
            cliqu_beneficiarios: $("txtbeneficiarios").value,
            cliqu_cgts: $("txtcgts").value,
            cliqu_dictamen: $("txtdictamen").value,
            cliqu_tiemposervicio: $("txttiemposervicio").value,
            nexpe_identificador: registroExpedientePersona.data.nexpe_identificador,//$("txtnroexpediente").value,
            nmore_identificador: document.getElementById("cboMotivo").value,
            ntibe_identificador: document.getElementById("cbotipobeneficio").value,
            nunpa_unidadpago: document.getElementById("cbounidadpension").value,
            dliqu_fechabaja: fechabaja.getRawValue(),
            dliqu_fechainiciopension: fechainiciopension.getRawValue(),
            ckmontocompleto:$("ckmontocompleto").checked==true?1:0,
            ckBenope:$("ckBenope").checked==true?1:0,
            ckpagoparcial:$("ckpagoparcial").checked==true?1:0,
            cliqu_observaciones: document.getElementById("txtobservaciones").value
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","Sus cambios se grabaron satisfacoriamente");
                $("txtliquidacion").value = operacion.id;
                dsLiquidacionPersonal.reload({
                    params:{ expediente:registroExpedientePersona.data.nexpe_identificador }
                });
            }else{
                Information("Aviso del Sistema","No se pudo grabar sus cambios");
            }
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar insertar el RTS"+transport.responseText);
        }
    });
}

function actualizarLiquidacion(){
    new Ajax.Request("jsonActualizarLiquidacion.jsp",{
        method:"post",
        parameters: {
            nliqu_identificador: $("txtliquidacion").value,
            cliqu_beneficiarios: $("txtbeneficiarios").value,
            cliqu_cgts: $("txtcgts").value,
            cliqu_dictamen: $("txtdictamen").value,
            cliqu_tiemposervicio: $("txttiemposervicio").value,
            nexpe_identificador: registroExpedientePersona.data.nexpe_identificador,//$("txtnroexpediente").value,
            nmore_identificador: document.getElementById("cboMotivo").value,
            ntibe_identificador: document.getElementById("cbotipobeneficio").value,
            nunpa_unidadpago: document.getElementById("cbounidadpension").value,
            dliqu_fechabaja: fechabaja.getRawValue(),
            dliqu_fechainiciopension: fechainiciopension.getRawValue(),
            ckmontocompleto:$("ckmontocompleto").checked==true?1:0,
            ckBenope:$("ckBenope").checked==true?1:0,
            ckpagoparcial:$("ckpagoparcial").checked==true?1:0,
            cliqu_observaciones: document.getElementById("txtobservaciones").value
        },
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","Sus cambios se grabaron satisfacoriamente");
                dsLiquidacionPersonal.reload({
                    params:{ expediente:registroExpedientePersona.data.nexpe_identificador }
                });
            }else{
                Information("Aviso del Sistema","No se pudo grabar sus cambios");
            }
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar insertar el RTS"+transport.responseText);
        }
    });
}

function agregarBeneficio(liquidacion){
    var frmGestionarBeneficios =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmAsignarBeneficios.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarBeneficios .html=transport.responseText;
            winGestionarBeneficios = new Ext.Window({
                title:'Gestionar Beneficios',
                closeAction:'destroy',
                width:600,
                height: 130,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarBeneficios,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        insertarBeneficio();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarBeneficios.destroy();
                    }
                }]
            });
            winGestionarBeneficios.show();
           // alert('Pop Up Agregar Beneficio con monto Grado = '+ registroExpedientePersona.data.ngrad_codigosige);
            fCargarBeneficios( registroExpedientePersona.data.ngrad_codigosige );
            $("txtliquiid").value=liquidacion;
        }
    });
}

function eliminarBeneficio(){
    new Ajax.Request("jsonEliminarBeneficio.jsp",{
        method:"post",
        parameters:{
            ndeli_identificador: registroBeneficio.data.ndeli_identificador
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El registro se inserto satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo insertar el registro");
            }
            dsBeneficios.load({
                params:{
                    nliqu_identificador: registroLiquidacion.data.nliqu_identificador
                }
            });
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso"+transport.responseText);
        }
    });
}

function insertarBeneficio(){
    new Ajax.Request("jsonInsertarBeneficio.jsp",{
        method:"post",
        parameters:{
            nbene_identificador: document.getElementById("cboBeneficio").value,
            nliqu_identificador: $("txtliquiid").value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                //Information("Aviso del Sistema","El registro se inserto satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo insertar el registro");
            }
            dsBeneficios.load({ params:{ nliqu_identificador: $("txtliquiid").value  } });
            winGestionarBeneficios.destroy();
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso: "+transport.responseText);
        }
    });
}

function fCargarMonto(){
    new Ajax.Request("jsonCargarMontoBeneficio.jsp",{
        method:"post",
        parameters:{
            nbene_identificador: document.getElementById("cboBeneficio").value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            $("txtmonto").value = operacion.monto;
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso"+transport.responseText);
        }
    });
}

function agregarFraccionamiento(liquidacion){
    var frmGestionarFraccionamiento =new Ext.Panel({
        bodyBorder:true,
        height:180,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmAsignarFraccionamiento.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarFraccionamiento .html=transport.responseText;
            winGestionarFraccionamiento = new Ext.Window({
                title:'Gestionar Fraccionamiento',
                closeAction:'destroy',
                width:600,
                height: 200,
                shim:false,
                maximizable:false,
                modal:true,
                resizable: false,
                animCollapse:false,
                layout: 'fit',
                items:frmGestionarFraccionamiento,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        insertarFraccionamiento();
                    }
                },'-',{
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winGestionarFraccionamiento.destroy();
                    }
                }]
            });
            winGestionarFraccionamiento.show();
            $("txtliquiid").value=liquidacion;            
          
        }
    });
    var calculo_liq = null;   
      new Ajax.Request("jsonCalculaLiquidacion.jsp",{
        method:"post",
        parameters:{
           nliqu_identificador:liquidacion,
           expediente:registroExpedientePersona.data.nexpe_identificador,
           ckmontocompleto:$("ckmontocompleto").checked==true?1:0
        },
        onSuccess: function(transport){
            calculo_liq = transport.responseText.evalJSON();
            $("txtmonto").value = calculo_liq.monto;
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar calcular el monto  "+transport.responseText);
        }
    });

}

function calculaPago(){
    var monto = $("txtmonto").value;
    var porc = $("txtparte").value;
    if(porc>100|| porc<0){
        alert('El porcentaje debe ser un numero entre 0 y 100');
        return;
    }
   $("txttotal").value = (monto * (porc/100)).toFixed(2);
}

function eliminarFraccionamiento(id){
    new Ajax.Request("jsonEliminarFraccionamiento.jsp",{
        method:"post",
        parameters:{
            nfrli_identificador: registroFraccionamiento.data.nfrli_identificador
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
                Information("Aviso del Sistema","El registro se elimino satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo eliminar el registro");
            }
            dsFraccionamiento.load({
                params:{
                    nliqu_identificador: registroLiquidacion.data.nliqu_identificador
                }
            });
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar el ascenso"+transport.responseText);
        }
    });
}

function insertarFraccionamiento(){
    new Ajax.Request("jsonInsertarFraccionamiento.jsp",{
        method:"post",
        parameters:{
            cfrli_descripcion: $("txtfraccionamiento").value,
            nfrli_monto: $("txtmonto").value,
            nliqu_identificador: $("txtliquiid").value,
            nfrli_parte: $("txtparte").value,
            nfrli_total: $("txttotal").value
        },
        onSuccess: function(transport){
            var operacion = transport.responseText.evalJSON();
            if (operacion.resultado){
               // Information("Aviso del Sistema","El registro se inserto satisfactoriamente");
            }else{
                Information("Aviso del Sistema","No se pudo insertar el registro");
            }
            dsFraccionamiento.load({ params:{ nliqu_identificador: $("txtliquiid").value } });
            winGestionarFraccionamiento.destroy();
        },
        onFailure: function(transport){
            Information("Aviso del Sistema", "Sucedio un error al intertar insertar la asignacion: "+transport.responseText);
        }
    });
}

function imprimirLiquidacion(){
    var width  = screen.width-50;
    var height = screen.height-100;
    var left   = 10;
    var top    = 10;
    var params = 'width='+width+',height='+height;
    params += ',top='+top+',left='+left;
    params += ',directories=no';
    params += ',location=no';
    params += ',menubar=no';
    params += ',resizable=yes';
    params += ',scrollbars=no';
    params += ',status=no';
    params += ',toolbar=no';
    window.open("LiquidacionServlet.pdf?nliqu_codigo="+registroLiquidacion.data.nliqu_identificador,'windowname',params);
}